﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Chilis.Marketing.Common;
using System.Data.SqlClient;
using System.Data;
using Chilis.Marketing.Business.Entity;

namespace Chilis.Marketing.Data.Access
{
    public class DATrabajador : ConexionBD
    {
        #region ATRIBUTOS

        private SqlCommand cmd;

        #endregion

        #region CONSTRUCTOR
        #endregion

        #region PROPIEDADES
        #endregion

        #region METODOS


        /// <summary>
        /// Función             : buscarTrabajadores
        /// Descripción         : Busca los Trabajadores de acuerdo a los filtros configurados
        /// Fecha Creacion      : 20/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 20/03/2012
        /// </summary>
        /// <param name="filtro">Entidad que representa el Trabajador</param>
        /// <returns>Listado de Materiales de acuerdo al filtro especificado</returns>
        public DataTable buscarTrabajadores(BETrabajador filtro)
        {
            DataTable dt = new DataTable();
            SqlDataAdapter da = null;
            this.Conexion();
            cmd = new SqlCommand();
            cmd.Connection = this.connection;

            this.AbrirConexion();

            cmd.CommandText = "spListarTrabajador";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Clear();
            cmd.Parameters.Add(new SqlParameter("@pIdTrabajador", filtro.IdTrabajador));
            cmd.Parameters.Add(new SqlParameter("@pNombres", filtro.Nombres));
            cmd.Parameters.Add(new SqlParameter("@pApellidoPaterno", filtro.ApellidoPaterno));
            cmd.Parameters.Add(new SqlParameter("@pApellidoMaterno", filtro.ApellidoMaterno));
            if (filtro.Cargo != null)
	        {
		        cmd.Parameters.Add(new SqlParameter("@pIdCargo", filtro.Cargo.IdCargo));
	        }
            else
            {
                cmd.Parameters.Add(new SqlParameter("@pIdCargo", DBNull.Value));
            }
            cmd.Parameters.Add(new SqlParameter("@pIdRecursoRol", filtro.IdRecursoEvaluado));
            cmd.Parameters.Add(new SqlParameter("@pEstado", filtro.Estado.ToString("D")));
            cmd.Parameters.Add(new SqlParameter("@pOrderBy", filtro.Order_by));
            cmd.Parameters.Add(new SqlParameter("@pDeForma", filtro.De_forma));

            try
            {
                da = new SqlDataAdapter(cmd);
                da.Fill(dt);
            }
            catch (Exception ex)
            {
                dt = null;
                throw ex;
            }
            finally
            {
                if (da != null)
                {
                    da.Dispose();
                }
                cmd.Dispose();
                this.CerrarConexion();
            }
            return dt;

        }


        #endregion
    }
}
